package edu.nwpu.service;

import edu.nwpu.pojo.Order;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface OrderService {

    /**
     * 通过订单Id寻找订单(包括已经删除的订单)
     * @param id
     * @return
     */
    public Order findOrderById(Long id);

    /**
     * 获取某个用户的所有订单
     * @param userId
     * @return
     */
    public List<Order> findUserOrders(Long userId);

    /**
     * 添加一个新的订单，即下单（状态：已下单）
     * @param order
     * @return
     */
    public String postOrder(Order order);

    /**
     * 删除一个订单
     * @param id
     * @return
     */
    public boolean deleteOrder(Long id);

    /**
     * 取消订单（状态：取消订单）
     * @param id
     * @return
     */
    public boolean cancelOrder(Long id);

    /**
     * （状态：已付款）
     * @param id
     * @return
     */
    public boolean payOrder(Long id);

    /**
     * 查询所有订单（管理员用）
     * @return
     */
    @Deprecated
    public List<Order> findAllOrders();

    /**
     * （状态：已接单）
     * @param id
     * @return
     */
    @Deprecated
    public boolean takeOrder(Long id);

    /**
     * （状态：正在配送）
     * @param id
     * @return
     */
    @Deprecated
    public boolean deliveringOrder(Long id);

    /**
     * （状态：已送达）
     * @param id
     * @return
     */
    @Deprecated
    public boolean deliveredOrder(Long id);
}
